"""Expresion Regular Form"""

from tw.forms import TableForm, Spacer, TextField, PasswordField, CalendarDatePicker, TextArea
from tw.forms.fields import Button, SubmitButton, HiddenField, CheckBox
from tw.forms.validators import *
from lex.widgets.mi_validador.mi_validador import *

class ExpresionRegularForm(TableForm):

    hover_help = True
    show_errors = True

    fields = [
        HiddenField('id_analizador_lexico', label_text='Id'),
        Spacer(),
        TextField('nombre_expresion_regular', validator=NombreExpresion, label_text='Nombre', size=38,
            help_text='Introduzca un nombre para la expresion regular.'),
        Spacer(),
        TextField('definicion_expresion_regular', validator=DefinicionExpresion, label_text='Definicion', size=70,
            help_text='Escriba la definicion de la expresion regular.'),
        Spacer(),
        CheckBox('validado', disabled=True, label_text='Validado', default=False,
            help_text='Indica la validez de la expresion regular'),
        Spacer()]

    submit_text = 'Guardar Expresion'

class EditExpresionRegularForm(TableForm):

    hover_help = True
    show_errors = True

    fields = [
        HiddenField('id_analizador_lexico', label_text='Id'),
        HiddenField('id_expresion_regular', label_text='Id'),
        Spacer(),
        HiddenField('nombre_expresion_regular', label_text='Nombre', size=38),
        Spacer(),
        TextField('definicion_expresion_regular', validator=DefinicionExpresion, label_text='Definicion', size=70,
            help_text='Escriba la definicion de la expresion regular.'),
        Spacer(),
        CheckBox('validado', disabled=True, label_text='Validado', default=False,
            help_text='Indica la validez de la expresion regular'),
        Spacer()]

    submit_text = 'Guardar Cambios'
    
crear_expresion_form = ExpresionRegularForm("CrearExpresionRegular", action='add')
editar_expresion_form = EditExpresionRegularForm("EditarExpresionRegular", action='update')
